import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

// 导入请求函数
import { loginIn } from '@/api'

export default new Vuex.Store({
  state: {
    token: localStorage.getItem('token') || "",//登录的token值,用于登录验证
    // 购物车被选中的内容
    cartChecked: [],
  },
  getters: {
  },
  mutations: {
    // 提交修改token
    changeToken(state, tokenVal) {
      if (tokenVal) {
        // 登录
        localStorage.setItem('token', tokenVal)
      } else {
        // 退出
        localStorage.removeItem('token')
      }
      state.token = tokenVal
    },
    // 修改选中产品
    changCartChecked(state, data) {
      // 更新state存储的被选中产品
      state.cartChecked = data
    }
  },
  actions: {
    // 异步操作拿到token
    async loginAction(context, userData) {
      let responseDate = await loginIn(userData)
      console.log(responseDate)
      if (responseDate.code == 1) {
        // 提交mutation去修改state内的token值
        context.commit('changeToken', responseDate.token)
        // 拿到结果
        return responseDate
      } else {
        return "用户名密码错误"
      }
    }
  },
  modules: {
  }
})
